package com.yun.algorithmproblem.leetcode;

import java.util.HashSet;
import java.util.Set;

/*
    给你一个下标从 0 开始的数组 words ，数组中包含 互不相同 的字符串。

如果字符串 words[i] 与字符串 words[j] 满足以下条件，我们称它们可以匹配：

字符串 words[i] 等于 words[j] 的反转字符串。
0 <= i < j < words.length
请你返回数组 words 中的 最大 匹配数目。

注意，每个字符串最多匹配一次。
 */
public class Leetcode2744 {
    public int maximumNumberOfStringPairs(String[] words) {
        Set<String> set=new HashSet<>();
        int max=0;
        for (String word : words) {
            if(set.contains(word)){
                max++;
            }else {
                set.add(new StringBuffer(word).reverse().toString());
            }
        }
        return max;
    }

    public static void main(String[] args) {
        String[] words=new String[]{"cd","ac","dc","ca","zz"};
        System.out.println(new Leetcode2744().maximumNumberOfStringPairs(words));
    }
}
